package ar.edu.utn.frba.dds.aterrizar;

import java.util.ArrayList;

import com.lanchita.AerolineaLanchita;

public class Vuelo {

	public String codigo;
	public String precioBase;
	public String clase;
	public String ubicacion;
	public String estado;
	public String DNIcomprador;
	
	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getPrecioBase() {
		return precioBase;
	}

	public void setPrecioBase(String precioBase) {
		this.precioBase = precioBase;
	}

	public String getClase() {
		return clase;
	}

	public void setClase(String clase) {
		this.clase = clase;
	}

	public String getUbicacion() {
		return ubicacion;
	}

	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getDNIcomprador() {
		return DNIcomprador;
	}

	public void setDNIcomprador(String dNIcomprador) {
		DNIcomprador = dNIcomprador;
	}

	public Vuelo(String[] unVuelo) {
		this.codigo = unVuelo[0];
		this.precioBase = unVuelo[1];
		this.clase = unVuelo[2];
		this.ubicacion = unVuelo[3];
		this.estado = unVuelo[4];
		this.DNIcomprador = unVuelo[5];
	}

	public boolean cumpleRequerimientosExtras(ArrayList<Condiciones> condicionesExtra) {
		boolean seCumple=true;
		for (Condiciones unaCondicion : condicionesExtra) {
			if (!unaCondicion.seCumplePor(this)) {
				seCumple= false;
			}
		}
		return seCumple;
	}
	
	public boolean esSuperofertaPara(AerolineaLanchita aerolinea, Usuario usuario) {
		float precioTotal = OperadorDeAerolineas.getInstance().calcularPrecioDeUnVuelo(aerolinea, this.getCodigo(), usuario); 
		boolean condicion1 = clase == "P" && precioTotal < 8000;
		boolean condicion2 = clase == "E" && precioTotal < 4000;
		return condicion1 || condicion2;

	}
	
	public boolean esVisiblePara(AerolineaLanchita aerolinea, Usuario usuario) {
		boolean esSuperoferta = this.esSuperofertaPara(aerolinea, usuario);
		if(esSuperoferta) {
			return usuario.getActitudSuperoferta();
		}
		return true;		
	}
	
}
